package com.hacker.jms.topic;

import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;

/**
 * 消费者
 * @Author:这个程序员有纹身
 * @Date: Created in 14:52 2017\12\23 0023
 */
public class AppConsumer {
    private static final String url = "tcp://127.0.0.1:61616";
    private static final String topicName = "topic-test";
    public static void main(String[] args) throws JMSException {

        //1、创建ConnectionFactory
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);

        //2、创建Connection
        Connection connection = connectionFactory.createConnection();

        //3、启动连接
        connection.start();

        //4、创建会话 是否使用事务  连接模式
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

        //5、创建一个目标、队列
        Destination destination = session.createTopic(topicName);

        //6、创建一个消费者
        MessageConsumer messageConsumer = session.createConsumer(destination);

        //7、创建一个监听器——异步调用，还没开始调用8就已经将connection关闭
        messageConsumer.setMessageListener(new MessageListener() {
            public void onMessage(Message message) {
                TextMessage textMessage = (TextMessage)message;
                try {
                    System.out.println("接收消息"+textMessage.getText());
                } catch (JMSException e) {
                    e.printStackTrace();
                }
            }
        });

        //8、关闭连接
        //connection.close();
    }
}
